package com.deepblue.image.maker.domain.vo.req;

import com.deepblue.image.maker.domain.freemaker.KeyValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * 创建dockerfilevo
 *
 * @author yymagicer
 * @version 1.0
 * @date 2021/11/9 上午9:37
 */
@ApiModel
@Data
public class CreateDockerfileVO {


    /**
     * harbor项目名称
     */
    @ApiModelProperty(name = "harbor项目名称")
    private String projectName;
    /**
     * 镜像名称
     */
    @ApiModelProperty(name = "镜像名称",required = true)
    @NotEmpty(message = "镜像名称不能为空")
    private String imageName;

    /**
     * 镜像版本
     */
    @ApiModelProperty(name = "镜像版本",required = true)
    @NotEmpty(message = "镜像版本不能为空")
    private String tag;
    /**
     * 镜像基础模块镜像地址
     */
    @ApiModelProperty(name = "镜像基础模块镜像地址",required = true)
    @NotEmpty(message = "镜像基础模块镜像地址不能为空")
    private String imageUrl;
    /**
     * 作者邮箱
     */
    @ApiModelProperty(name = "作者邮箱")
    private String autherEmail;


    /**
     * 用户和用户组信息
     */
    @ApiModelProperty(name = "用户和用户组信息")
    private KeyValue user;

    /**
     * 工作目录
     */
    @ApiModelProperty(name = "工作目录")
    private String workDir;

    /**
     * 配置环境列表
     */
    @ApiModelProperty(name = "配置环境列表")
    private List<KeyValue> envList;
    /**
     * 复制指令集
     */
    @ApiModelProperty(name = "复制指令集")
    private List<KeyValue> copyList;

    /**
     * add指令集
     */
    @ApiModelProperty(name = "add指令集")
    private List<KeyValue> addList;

    /**
     * run指令集,RUN 是在 docker build执行
     */
    @ApiModelProperty(name = "run指令集,RUN 是在 docker build执行")
    private List<String> runList;

    /**
     * cmd指令集,CMD 在docker run 时运行
     */
    @ApiModelProperty(name = "cmd指令集,CMD 在docker run 时运行")
    private List<String> cmdList;

    /**
     * volume指令集
     */
    @ApiModelProperty(name = "volume指令集")
    private List<KeyValue> volumeList;

    /**
     * 暴露端口列表
     */
    @ApiModelProperty(name = "暴露端口列表")
    private List<String> exposePortList;

    /**
     *harbor镜像地址
     */
    @ApiModelProperty(name = "harbor镜像地址")
    private String harborImageUrl;
}
